Field of the Invention
The invention relates to integrated circuits and, more particularly, to an integrated circuit designed for the execution of software programs.
Integrated circuits of this type are particularly often contained in microprocessors, microcontrollers, signal processors and the like. Such circuits exist in a great number of widely varying embodiments and they are widespread.
Although microprocessors, microcontrollers, signal processors and the like are available in a wide variety of embodiments (or perhaps even just because of this), it is difficult or sometimes even impossible to find a version which can meet the requirements imposed in a specific individual case (and only these requirements).
If the microprocessor, microcontroller, signal processor or the like which is selected is one which, for whatever reason, cannot meet all the imposed requirements, then this will generally increase the outlay on the hardware in which it is to be used.
If, however, the microprocessor, microcontroller, signal processor or the like which is selected is one which has more than the required capacity, then this will generally increase the cost of the product containing it.
It is accordingly an object of the invention to provide an integrated circuit for processing software programs, which overcomes the above-mentioned disadvantages of the prior art devices and methods of this general type and which can in each case be used optimally for a large number of widely varying applications.
With the foregoing and other objects in view there is provided, in accordance with the invention, an integrated circuit device for executing software programs, comprising:
a multiplicity of electronic components and electrical connections extending between the electronic components; the electronic components and the electrical connections being disposed such that one of an interconnection of the electronic components, a function thereof, and a mode of operation thereof is individually configurable by selectively breaking or creating the connections dynamically and in parallel during an operation of the integrated circuit device.
In other words, the electronic components of the integrated circuit and/or the electrical connections provided between the components are at least in part arranged in such a way that the interconnection of the electronic components and/or their function and/or their mode of operation can be individually configured by selectively breaking and/or making connections. The configuration of the connections is thereby carried out dynamically and in parallel during the operation of the integrated circuit.
An integrated circuit of this type can therefore, unlike customary integrated circuits of the type in question, be configured at the hardware level.
This hardware-level configurability makes it possible to match the integrated circuit in virtually any way to the respectively desired conditions. This matching is carried out dynamically during the operating time of the integrated circuit. Advantageously, the configuration of the connections is carried out internally by the integrated circuit itself. By virtue of the dynamic and internal configuration of the connections, the integrated circuit can be matched to the respective requirements without the need to interrupt the operation of the integrated circuit.
If, for example, that part of the integrated circuit which executes the software programs is provided in the form of an intelligent core of the integrated circuit, and a hardware-configurable part of the integrated circuit is disposed between the intelligent core and the input and/or output terminals (pins) of the integrated circuit, then the user can allocate any desired functions to any of the input and/or output terminals. It is therefore possible, to name only one of a virtually unlimited number of examples, for an arbitrary number of pins to be configured as input and/or output terminals for an arbitrary number of serial or parallel interfaces.
As an alternative, or in addition, provision may be made to make at least parts of the intelligent core configurable at the hardware level. It is in this way possible to affect the function and the mode of operation of the intelligent core, which, again to name only one of a virtually unlimited number of examples, can be used as a way of selecting, affecting and/or creating the instruction decoder (individual matching to an instruction set desired by the user).
With the above and other objects in view there is also provided, in accordance with the invention, a method of programming and operating an integrated circuit device for executing software programs, which comprises:
providing an integrated circuit device with a core region having an integrated circuit for executing software programs, a programmable peripheral region disposed around the core region, and a plurality of terminals for electrically contacting the integrated circuit device;
connecting the integrated circuit of the core region to the terminals through the programmable peripheral region; and
dynamically and in parallel during an operation of the integrated circuit device, selectively breaking or creating the connections for configuring electronic components of the integrated circuit device or the electrical connections thereof such that an interconnection of the electronic components, a function thereof, and/or a mode of operation thereof is individually configured.
In accordance with an additional feature of the invention, therefore, the peripheral region is configurable such that the terminals of the integrated circuit device are at least in part individually allocatable.
In accordance with another feature of the invention, the peripheral region is configurable such that data signals input or output via the terminals are processed in the peripheral region.
In accordance with a further feature of the invention, the peripheral region is configurable to selectively process signals or data input and output through the terminals.
In accordance with again a further feature of the invention, the core region is configurable to individual program instruction to be carried out therein.
The intelligent core is in this case to be regarded as a status machine. The status machine has a predetermined number of states, which run in a fixed predetermined scheme. In particular, the intelligent core may be a microcontroller, a microprocessor, a digital signal processor, or the like.
In accordance with again another feature of the invention, the peripheral region contains a multiplicity of programmable gate elements such as, for example, FPGAs, PLDs, PLAs or the like. It is also particularly advantageous, in accordance with yet another feature of the invention, if the peripheral region is formed by at least one coprocessor, which is dynamically connected up to the intelligent core should the latter, for example, require additional computing power or if data need to be processed more rapidly.
Overall, the hardware-level configurability of an integrated circuit, designed for the execution of software programs, allows the latter to be matched to a very wide variety of requirements.
An integrated circuit has therefore been provided which can in each case be used optimally for a large number of widely varied applications.
Other features which are considered as characteristic for the invention are set forth in the appended claims.
Although the invention is illustrated and described herein as embodied in an integrated circuit for processing software programs, it is nevertheless not intended to be limited to the details shown, since various modifications and structural changes may be made therein without departing from the spirit of the invention and within the scope and range of equivalents of the claims.
The construction of the invention, however, together with additional objects and advantages thereof will be best understood from the following description of the specific embodiment when read in connection with the accompanying drawing.